//
// Created by fh on 2021/6/25.
//

#ifndef CDEMO_HEAP_H
#define CDEMO_HEAP_H

#include <stdio.h>
#include <stdlib.h>
#include "CustomDefine.h"

/* 堆的特点:
 * 就是一棵二叉树，一棵完全二叉树，一棵父结点比子结点都大(大顶堆)或者都小(小顶堆)的完全二叉树 */
#define MAXSIZE 20
/* 数组实现的堆 */
typedef struct {
    int data[MAXSIZE]; /* 下标0不存数据,根节点是下标1 */
    int index; /* 当前下标 */
    int isBigTopHeap; /* 是不是大顶堆：1是，0否 */
} SqHeap;

/* 创建初始化顺序堆 */
SqHeap * SqHeapCreateAndInit(int isBigTopHeap);
/* 顺序堆插入 */
Status SqHeapInsert(SqHeap *sqHeap,int value);
/* 顺序堆删除 */
Status SqHeapDelete(SqHeap *sqHeap,int value);
/* 遍历堆 */
Status SqHeapDisplay(SqHeap *sqHeap);
/* 顺序堆测试demo */
void SqHeapDemo();


#endif //CDEMO_HEAP_H
